package com.longshine.arthmetic;

import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;
/**
 * 示意图主界面
 *  
 *
 * @classname   MainFrame.java 
 * @author      YitianC
 * @version     Revision: 1.1,  Date: 2008/05/14 01:43:47  
 * @history     
 *              Mar 13, 2012 5:07:24 PM  
 *
 */
public class MainFrame extends javax.swing.JFrame{

	private static MainFrame mf;  //单例模式，只有一个界面
	private final List<Drawable> lds = new ArrayList<Drawable>(); //要显示的结构
	private MainFrame(){}
	public static MainFrame getFrame(){
		if(mf == null){
			mf = new MainFrame();
		}
		
		return mf;
	}
	/**
	 * 
	 * 初始化 
	 * 
	 * @author      YitianC 
	 * @history 
	 *              YitianC Mar 13, 2012 5:09:09 PM
	 */
	public void init(){
		this.setBounds(0, 0, 1000, 800);
		this.setDefaultCloseOperation(3);
		this.setTitle("结构示意图 v0.1");
		this.setVisible(true);
	}
	/**
	 * 
	 * 加入要显示的结构 
	 * 
	 * @param d
	 * @author      YitianC 
	 * @history 
	 *              YitianC Mar 13, 2012 5:09:38 PM
	 */
	public void addDrawableGraphic(Drawable d){
		lds.add(d);
	}
	public static void main(String[] args){
		new MainFrame().init();
	}
	/**
	 * 绘制要显示的所有结构
	 * 
	 *
	 * @param g 
	 * 
	 * @Overriding  重载方法
	 */
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		for(Drawable d:lds){
			d.draw(this);
		}
	}
}
